package com.sloth.bear.service;

import com.sloth.bear.dto.base.ResponsePage;
import com.sloth.bear.dto.request.MomentListRequest;
import com.sloth.bear.dto.request.MomentRequest;
import com.sloth.bear.dto.vo.MomentVo;
import com.sloth.bear.dto.vo.MomentsFilterVo;
import com.sloth.bear.dto.vo.moments.CreatedTimeListVo;

import java.util.List;

public interface MomentService {

    /**
     * 创建Moment
     */
    Long createMoment(MomentRequest request);

    /**
     * Moment列表
     */
    ResponsePage<MomentVo> listMoment(MomentListRequest request);

    /**
     * Moment详情
     */
    MomentVo detailsMoment(Long id);

    /**
     * 更新Moment
     */
    void updateMoment(Long id, MomentRequest request);

    /**
     * 获取过滤条件
     */
    MomentsFilterVo filter();

    /**
     * 删除Moment
     */
    void deleteMoment(Long id);

    /**
     * 随机获取一条Moment
     */
    MomentVo randomMoment();

    /**
     * 获取时间列表
     */
    List<CreatedTimeListVo> listCreatedTime();
}